The present invention relates to a customer terminal and to a “self-shopping” system and more specifically a “self-scanning shopping” system.
In the present description and in the attached claims, under the expression “self-scanning shopping” it is meant to indicate purchase at a self-service shopping site, namely where the customer him/herself collects the desired products from shelves and/or counters, including manned counters, and reads a product code from each product that he/she selects to purchase via a terminal, typically a portable terminal (hand-held mobile computer), to obtain product data typically including the price.
The product data is typically stored in a list; at the end of shopping, the cash slip and the payment are made based on the stored list, except for checks by a cash desk attendant of the shopping site.
There are many advantages of these shopping systems. In this way, the customer is able, amongst other things, to know in real time the price of each product and/or the total price accumulated for the products selected for purchase and, at the end, has no need have to the codes rechecked at the cash desk before payment, avoiding queues at the checkouts. Moreover, the customer can take advantage of his/her fidelity card through dedicated promotional offers. At the shopping site, the shopping history of each customer can also be stored, for example for statistical purposes and/or to make targeted advertisements and promotions. It is also possible to monitor availability on the shelves in real time, particularly of high-consumption products in the peak hours, and restock them in real time.
A self-scanning shopping system is described for example in patent application EP 1162583 A1, on which the preamble of the independent claims is based.
US 2009/0328131 A1 describes a hard reset mechanism of an electronic device, which, upon request of a hard reset, carries out a further check of the user's credentials and makes a backup of the data before carrying out the hard reset. The backup can be made onto a removable memory card of the device or onto a remote device. The Applicant observes that such a mechanism is not suitable for sudden and total hardware blocks, since the processor must still be sufficiently operative to be able to carry out the further check of credentials and the data backup.
US 2004/0117268 A1 describes a system for processing on-line purchase orders, comprising a hub having at least one server and customer, seller, freight attendant and warehouse attendant terminals, including portable terminals. A triple-redundancy backup system is provided, wherein the databases and possible software applications are run simultaneously on at least three systems, as well as a mirror service at a remote location to preserve the data in case of a disaster in the hub or main server. Moreover, the document makes a generic reference to the fact that the data can be stored on the hub and on a subscriber terminal to provide data integrity and backup for the subscriber terminal, so that in the case of a system crash on the subscriber side the information can be recovered by the hub. The document relates to users subscribed to the service and does not disclose either automatic management of hardware and software blocks nor automatic recovery, without the intervention of an attendant, of such backup information and therefore it is totally unsuitable for an environment wherein the users of the portable terminals are occasional and temporary, with practically zero knowledge of the portable terminal as occurs in a “self-scanning shopping” environment.
In the field of “self-scanning shopping” systems of interest here, an important requirement is user friendliness of the customer terminal; moreover, a much felt problem for the customer is the reliability of the terminal. In a “self-scanning shopping” system of the prior art, if a customer terminal blocks, for example due to a malfunction of any kind of the hardware or software, it is necessary to take the terminal back to the checkout or to the terminal distribution point, where a customer care representative re-initializes the terminal or gives another terminal to the customer, with waste of time, loss of efficiency of the system, and lost of customer's trust. Since these are rare events, it is difficult to acquire statistics on the reasons causing the blocks of the terminals, which may be many and varied, and consequently it is difficult to take the appropriate preventive measures.
The technical problem at the basis of the present invention is, in a self-scanning shopping system, to minimize the impact on the customer of a block of the customer terminal, in particular of a hardware block.
In the present description and in the attached claims, under the expression “hardware block” it is meant to indicate a malfunction at the BIOS and/or kernel level of the operating system, as opposed to the expression “software block” with which it is meant to indicate a malfunction of an application, like for example the management of the user interface, the wireless connection with a remote device, etc.
The Applicant has recognised that the aforementioned problem can be solved with automatic detection of such a block and a consequent automatic reset or “re-boot” of the operating system of the customer terminal.
It should be emphasised that in known applications—to embedded systems or to complex automatic fail-safe control systems—of a supervisor circuit (watchdog) that periodically checks whether the main processor is working and, if not, produces a general reset of the system, the general reset typically involves losing the state of the system at the moment of the block and therefore losing user data. In the case of a “self-scanning shopping” system, this would mean for the customer a loss of shopping data, which has an extremely negative impact since it is very annoying for the customer.
In order to avoid this, the automatic restore from blocks of the main processor of the customer terminal according to the invention is advantageously implemented in combination with an automatic restore of the shopping session from a memory location independent from the restore, be it local in the customer terminal and not subject to deletion during the resetting of the processor or remote in a data processing system with which the customer terminal is in communication, typically in wireless communication.
In the present description and in the attached claims, under the term “data processing system” it is meant to indicate a single remote processor or a plurality of processors and possible peripherals, including access points, routers, etc., connected in a cabled, wireless or mixed network, including Internet.
In one aspect the invention concerns a customer terminal of a “self-scanning shopping” system, the system being configured to store at least one shopping session in a non volatile memory, the customer terminal comprising:                a main processor,        a product code reader,        and being characterised in that it further comprises:                    a location for non volatile storage of an open shopping session indicator and/or an identifier, either direct or indirect, of a shopping session, and            a supervisor circuit, and            in that in a working operating state, the main processor is configured to periodically send a heartbeat to the supervisor circuit,            and in that the supervisor circuit is configured to command a reset of the main processor when, from the lack of receipt of the heartbeat, it detects a non working operating state of the main processor,            and in that the main processor is configured, upon reset, to check whether there is an open shopping session based on the content of said memory location and in the affirmative case to restore said shopping session.                        
In the present description and in the attached claims, under the term “product code” it is meant to indicate an optical code such as barcodes, stacked codes, two-dimensional optical codes, colour codes; a magnetic code; or an electronic code, such as RFID tags. The expression “optical code” further comprises graphical representations that can be detected not only in the field of visible light, but also in the range of wavelengths comprised between infrared and ultraviolet. The code reader of the customer terminal has corresponding reading means and, optionally, means for writing and/or modifying magnetic and/or electronic codes. The term “scanning” as used herein shall no way be taken to be limited to sweeping an optical code with a light beam.
In the present description and in the attached claims, under the term “shopping session” it is meant to indicate at least one item of data coinciding with and/or correlated to the product code of all of the products selected for purchase by a customer.
In the present description and in the attached claims, under the term “processor” a multipurpose programmable device is meant that accepts digital data as an input, processes them according to instructions stored in its memory and supplies results as an output. It is a component that incorporates the functions of a Central Processing Unit (CPU), preferably in a single integrated circuit or at most in a few circuits.
In the present description and in the attached claims, under “reset of the main processor” it is meant restoring the default content of registers and executing a predetermined sequence of startup instructions (or “bootstrap”), stored in a predetermined location of non volatile memory.
Under “restoring the shopping session” it is meant to indicate that the processor restores the state of the shopping session existing just before the block and in particular it supplies again to the customer the last indication that he/she had been given, in particular the price of the last product selected for purchase.
The heartbeat periodically sent from the main processor to the supervisor circuit can be a pulse signal on a dedicated line, the change in state of a line, etc. The supervisor circuit can comprise a timer or other hardware or software device that is reset at every heartbeat and that indicates whether a predetermined maximum time has passed.
The supervisor circuit can be a second processor, preferably much smaller and more cost-effective than the main processor. Alternatively, the supervisor circuit can be a FPGA (Field Programmable Gate Array) or a CPLD (Complex Programmable Logic Device) or a discrete component circuit.
Since it is an extremely simple device that carries out very simple operations and sustains a light workload, the supervisor circuit is much less at risk of blocking with respect to the main processor. However, when the supervisor circuit is a second processor, it can be provided that it periodically emits heartbeats in turn and that the main processor in turn detects said heartbeats and, in their absence, commands a reset of the supervisor circuit.